package tech.xs.auth.service;

import tech.xs.auth.domain.entity.AuthSysUser;
import tech.xs.common.auth.domain.cache.AuthTokenCache;
import tech.xs.common.auth.domain.enums.AuthClientTypeEnum;

public interface AuthTokenService {

    /**
     * 创建授权Token
     *
     * @param user       用户
     * @param clientType 客户端类型
     * @return token
     */
    AuthTokenCache createAuthToken(AuthSysUser user, AuthClientTypeEnum clientType);

    /**
     * 删除token
     *
     * @param clientType 客户端类型
     * @param userId     用户id
     */
    void removeAuthToken(Long userId, AuthClientTypeEnum clientType);

    /**
     * 根据用户id更新Token信息
     *
     * @param userId 用户id
     */
    void updateToken(Long userId);

}
